The present invention relates to the field of multicast routing.
Digital media, such as audio and/or video, can be streamed from a source to a host (end user) over a data communications network in either unicast or multicast transmission modes. Example applications include television and video services (including so-called “on demand” services) and videoconferencing. In unicast transmission, the media is streamed from the source to a single network destination identified by a unique address. In multicast transmission, the media is streamed from the source to a group of hosts simultaneously in a single transmission.
Multicast networks operate in two sections: one that manages membership of hosts to groups using protocols such as Internet Group Membership Protocol (IGMP), and the second that manages membership of routers to groups, which subscribe to content sources in the network. As those skilled in the art will appreciate, there are several multicast routing protocols that use different techniques to build a group membership tree. The present work is applicable, but by no means limited, to Protocol Independent Multicast—Sparse Mode (PIM-SM) routing, RFC 4601.
In unicast mode, when a host (end user) requires a piece of media content, it sends a request using a media streaming protocol with the Uniform Resource Identifier (URI) of the content or playlist that it would like to receive. Examples of typical protocols include stateless HTTP Streaming or stateful Real Time Streaming Protocol (RTSP). RTSP typically uses Real-time Transport Protocol (RTP) to deliver the content itself, whereas HTTP uses the HTML body to deliver the content in its response to the GET message. This is encapsulated using IP and routed to the media server. The content is then sent using unicast to the host. If a cache is in place, multiple requests for the same content within a short period of time triggers the caching process for the content, subsequent to which further requests for this piece of content are directed to the cache rather than the data source. Nevertheless, each source receives a unicast stream of the data from either the cache or the source. This results in data replication through the network, which it is desired to minimise, in order to make more efficient use of network capacity. Triggering multicast is one method to resolve this issue.
Conventionally, such triggering is initiated reactively, in response to upper and/or lower usage thresholds being crossed. If the upper threshold is exceeded then the transmission switches from unicast to multicast. When the usage falls below the lower threshold then transmission reverts to unicast.
According to a first aspect of the present invention there is provided a method of distributing content from a source in a content delivery network, the method comprising: monitoring requests for delivery of an item of content; obtaining a prediction of future demand in respect of the said content; applying a unicast-to-multicast switching decision algorithm, the switching decision algorithm taking into account the prediction of future demand and arranged to determine whether at least one trigger condition is met; and dependent on the outcome of the unicast-to-multicast switching decision algorithm, initiating the transition of a plurality of unicast data streams to a multicast data stream in respect of the item of content, wherein the prediction of future demand in respect of the said content is based on data unrelated to actual demand for said content. The data unrelated to actual demand for said content comprises data obtained from a social data source and/or data obtained from a search engine.
By using a prediction of future demand in this manner, multicast streaming can be proactively and autonomously initiated, thereby improving the allocation of network resources.
Optionally the method may further comprise maintaining a statistical record in respect of the requests directed at the source in respect of the item of content, and using at least some of the data in said record to obtain the prediction of future demand.
By way of example, the prediction of future demand may be based on the number of active sessions over a preceding time period. Alternatively, it may be based on an average number of active sessions over a preceding time period, the average number of active sessions being evaluated by determining the number of active sessions at times within the said time period and determining an average thereof.
The prediction of future demand may be specific to the time of the day (e.g. in relation to hourly news broadcasts), and/or to the day of the week.
Optionally the switching decision algorithm may take into account data in the statistical record.
Optionally the switching algorithm may take into account one or more parameters in the statistical record, the parameters selected from a group comprising: current number of active sessions; total number of requests for the said content during a given period of time; average session duration; probability that a session ends prematurely; data size of the said content.
The method may further comprise maintaining one or more background actions selected from a group comprising: periodically electing bootstrap routers irrespective of multicast being engaged in the network; candidate bootstrap routers advertising their candidacy to an elected bootstrap router; multicast routers sending “hello” messages to each other, irrespective of multicast being engaged in the network.
Optionally the process of transitioning the plurality of unicast data streams to the multicast data stream may comprise: generating a group address system; creating session description information for the content to be switched to multicast; and joining a host to the multicast data stream.
The transitioning process may further comprise generating a multicast-specific uniform resource indicator in respect of the said content.
Generating a group address system may comprise assigning a group address for every uniform resource identifier, or assigning a group address per geo-location combination of host group and source(s).
Furthermore, generating a group address system may comprise using an existing set of group addresses, or using a dynamic pool of addresses. Alternatively a group address may be received from an address assignment server.
The transitioning process may further comprise encapsulating packets from the source in a register message sent to a respective rendezvous point
If the host has requested a unicast data stream and has not yet started to receive the stream, the transitioning process may further comprise embedding a new multicast uniform resource identifier in response code sent to a browser at the host, or sending the host a message containing the group address or a uniform resource identifier to obtain the group address.
If the host has already started to receive a unicast stream, the transitioning process may further comprise using a backchannel to issue the host with the group address or a uniform resource identifier to obtain the group address. If RTSP is being used in unicast, the process may further comprise announcing the change to the host using Announce, Redirect or Set_Parameter requests.
Further, the transitioning process may comprise causing the multicast content to start at a given time, in response to a request from the host to do so.
Alternatively, if HTTP is being used in unicast, the transitioning process may further comprise providing a new uniform resource identifier or group address to which the host can set up membership, in response to a request from the host for the current status of the streaming method.
The transitioning process may further comprise the upper-layer-protocol triggering an extended IP module that supports multicast, to issue a membership join request.
Optionally the transitioning process may further comprise terminating the unicast session in response to the host detecting that substantially the same content is being received via unicast and via multicast, thereby making more efficient use of network capacity.
The above method may be performed on or by a network device such as a router (in particular, the source's designated router) or a server.
Upon receiving a request in respect of an item of content, the method may further comprise a server establishing if any other server has any active sessions in respect of the said content and, if so, consolidating a plurality of session requests, made to different servers, such that a single server handles the plurality of session requests. This consolidated plurality of session requests may be sufficient to trigger multicasting, whereas, prior to consolidation, the number of session requests handled by the separate servers may not have done. Thus, this consolidation process can further improve the allocation of network resources.
Optionally the trigger condition may comprise a threshold value for the predicted future demand for the content.
According to a second aspect of the invention there is provided a network device (e.g. a router or a server) having logic configured to perform a method in accordance with the first aspect of the invention.
According to a third aspect of the invention there is provided a computer implementable instructions product comprising computer implementable instructions for causing a programmable computing device to implement the method of the first aspect of the invention, or to become configured as the network device of the second aspect of the invention.
A number of embodiments of the system are described herein. It will be clear to one skilled in the art that each of these embodiments may be implemented independently. However, embodiments are preferably implemented in conjunction with each other to provide multiple advantages as part of a larger system. Preferred features of one embodiment may be applied directly to other embodiments of the system. Further, method features may be applied directly to aspects of the apparatus.
In particular, in all of the embodiments described herein, the destination may be a host or a host designated router, H-DR, in a multicast network. The host may be the end user terminal associated with an end user or consumer of the content, or may be an intermediate device that serves the content to the user's device. For example, the destination may be a hub within a home network that receives the content for streaming to a user's terminal, such as an internet-connected television, a computer, a tablet or a telephone.
Similarly, in all of the aspects described above, the source may be the device that serves the content in the network or may be an intelligent routing component in the network that handles routing of consent to destinations. The content may pass through the intelligent routing component, or the component may control other components in the network, such as the source, to implement the methods described herein.
Further, in all of the embodiments described herein, the content is preferably video content and/or audio content, in particular on-demand content delivered in response to a request from a user. However, the skilled person will appreciate that the systems and methods described herein could equally be applied to networks for the distribution of data, such as text or image data, or software.